home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio 2000 #2
/
Ham Radio 2000 - Volume 2.iso
/
HAMV2
/
TCP_IP
/
TNOS230B
/
NEW2TN1.14
< prev
next >
Wrap
Text File
|
1995-06-15
|
24KB
|
539 lines
Upgrading TNOS to release 1.14
http://www.lantz.com/Update1.14.html
TNOS 1.14 will be the next release of TNOS, to be released sometime
before the formation of the United Federation of Planets. Hopefully,
this list of changes will give you an idea of the scope of work that
has occurred between versions. Of course, it may be faster just to
re-read the docs when the next version is released.
This document is divided into:
* Bug Fixes
* Improvements
* Minor Changes
* Known Bugs
* To-Do List
------------------------------------------------------------
Bug Fixed:
The following bugs have been squashed.
* Changed the BBS quickscan command description
It did say that "QUI" was the abbreviation, but (of course) that is the
abbreviation for "quit". This is changed to "QUICkscan"...
* Also changed the BBS user command description - to "USEr"
* Fixed two potential null pointer dereferences in rspf.c
* A potential null deference in 'domain addserver' fixed
* Fixed a problem with serial device lock files
This only occurred if the lock file existed and you did NOT have READ
permissions on that lock file.
* Several assorted minor null pointer deferences
* Changes to avoid FLEXNET packets from being dumped as ARP packets
This should avoid the crashes when tracing an interface using FlexNet
* Long-time 'ax25 flush' bug found....
Thanks to Christine Rial <crial@telerama.lm.com> for giving me enough
info to get this one......
I have had one or two of you send me cryptic email about having crashes
with the heard lists. Never had enough info, till now. Really didn't need
much, but couldn't understand having problems with heard lists, when I
use the 'ax heard' all the time.
Well, the problem was in FLUSHING the heard lists, IF you were using POLLED
memory, which is the default. Well, it was ALWAYS freeing memory like you
would for un-POOLED memory, causing crashes.
* Fixed an SMTP bug with LZW
This was a typo that crept in with release 1.13
* A workaround for a GCC optimization bug in 2.6.x
There was a BIG problem compiling with 2.6.x that would
eat up ALL available CPU
cycles!?! A look with 'top' usually shows 90+ % :-(
The cause is a bug in GCC in the optimizer, that incorrectly optimizes
the portion of code that calculates the minimum time that the system can
wait to I/O, if no processes are active. The bug makes it THINK that it
can NEVER do a blocking wait for I/O, so the idle routine is CONTINUALLY
calling the I/O routine (ding()) in a process devouring loop!
I've tried several workarounds, and they ALL optimize incorrectly, so the
workaround for the moment is to NOT allow the compiler to optimize
unix.c. The Makefile was changed for this purpose.
* Fixed an problem with disabled interrupts
One process INCORRECTLY masks interrupts at the
WRONG place. DOS doesn't SEEM to be affected, but who knows what it MAY
have done to efficiency. BUT the Linux processes had their 'heartbeat'
timer COMPLETELY disabled because of this, causing sluggishness during
non-idle times.
* Fixed a bug in the EXPIRE routine
This bug didn't release 'mbox maintenence' mode if the expire.dat file
didn't exist.
* Fixed a bug with POLLED forwarding
* Fixed a bug with AXUI and added selective timestamping
* Elusive 'trace <iface> 211' output bug found.
The bug occurred if you used trace mode 211. EVENTUALLY you crash.
A look at the
output showed occasional weird things in the ASCII portion, which looked
like floating point numbers.
All fixed now!
Awful simple when you know what you're looking at ;-)
* * 'Ron' bug discovered ;-)
There was a buglet in using the 'mbox newmotdfile' command, in that it
would wipe out the FIRST 'R' in each line, not necessarily the 'R'
attribute! The result was anyone that had a name starting with 'R',
ended up with it changed to a space. 'Ron' became ' on'. This is now fixed
* Fixed a bug in POOLED memory usage, which left unused entries
It was leaving one unused entry per pool block.
* Fixed a bug in the BBS 'read' command with non-PBBS message-ids
This would abort if given a bid from a mailer like Pine or Chameleon.
------------------------------------------------------------
Improvements:
The following optimizations and improvements have occurred.
* Added to the REQUEST SERVER the ability to use external Callbook Server
Previously, the Request Server would only grant 'QTH' requests if it was
running a SAM callbook (MSDOS, only). Now, as long as you can manually
retrieve from a configured Internet Callbook server, you can also grant
'QTH' requests from that same server.
* Added a Conference Bridge '/cstat' command
This gives the output from the '/links' command, followed by the output of
the '/dest' command.
* Made the netrom nodes broadcast more CPU-friendly
The regular broadcast of netrom nodes was setup as a regular timer event,
but now the timer event spawns off a separate process to do the broadcasting.
This is too allow placing delays between the broadcasting of the different
interfaces. When using this with axip over the Internet, ALL those axip
interfaces go out the same port, and this not only hogged a slow dialup
SLIP or PPP line, but also made the rest of the TNOS session brain-dead
until the node broadcast was complete.
While my 29 interfaces is NOT the
normal situation, it SHOULD handle it better. So now there is 5 seconds
pause between interface broadcasts, which fixes the above problems quite
well. When all of the netrom interfaces are complete, then the
'NETROM broadcast' process dies.
* Number of AXIP links now selectable from command line
There is now a '-a xx' option to TNOS to allow you select the number of
AXIP links available for use. Increasing the number of AXIP links USED to
require re-compiling the program after changing a constant value set in
one of the header files. Now it can be changed easily.
The default for number of AXIP links has gone back to 16. The only overhead
that is used by a non-used-but-allocated AXIP link is 4 bytes per interface.
The Command Session 'status' command now also shows how many AXIP interfaces
are available.
* Added a new maintainence mode command
Added a 'mbox maintclear [on|off]' command, which determines whether or not
the system will bump users off the system or not, when it is time for
maintenence. If set to on, the when maintenence mode time comes, it
will bump users off with the 'mbox maintstr' message, then start maintenence.
If this is off, then it will work like before, and simply WAIT until the
last user has logged off before starting maintenence.
* Added a way to generate PBBS 'export' files
This has been done in a seemless way. You add an entry to your forward.bbs
file, with a connection method of 'export'. All messages going to this
special export BBS, go into the 'spool/export/current.exp' file. At
regular intervals, you can 'export now' (or 'export <minutes>'), which
renames the 'current.exp' file to a unique name of the form 'MMDDHHMM.exp',
also located in the 'spool/export' directory.
* Added a way to accept PBBS 'import' files
This also has been made as painless as possible. All "*.imp" files in the
'spool/import' directory are imported when you 'import now'
(or 'import <minutes>'). The original file is deleted after the import is
complete.
Another way of doing this WITH A WARNING is to send a message to
'import@host'. This will be immediately processes and imported.
**THE WARNING**
The import/export files end each message with a '/EX'. Before sending mail to
'import', you must run the file through a program and change all '/EX's to
'//EX's, otherwise, NO MESSAGES will get imported, since the import routine
feeds the data into the BBS as if it was being received. The '/EX's in the
import file are used to complete each message. YOU WERE WARNED! ;-)
* Added the 'icmp timeexceed' command, from JNOS
This allow you to PREVENT the sending of ICMP Time Exceeded messages, to
make the system invisible to traceroutes. Good to help secure gateways on
the Internet.
* Added the 'icmp quench' command, from JNOS, for MSDOS version
This allow you to PREVENT the sending of ICMP Source Quench messages when
memory goes low. Only for MSDOS version.
* Added the 'iface rxecho' command, via JNOS, from Johan
From the JNOS 1.10j release files:
Johan WG7J also provided changes to iface.c and config.c that permit (if
RXECHO is defined) packets received on one interface to be sent out another
interface, provided they are of the same type. This is set by:
ifconfig <iface> rxecho {off | <echo-to-iface>}
Johan cites two interesting applications:
Case 1:
You have two machines connected to each other via a kiss link. Only
pc1 has radio's. You want to 'listen' to a radio channel on pc2. Thus, on
pc1, you add:
ifconfig <radio-interface> rxecho <kiss-to-pc2-interface>
Now on pc2's kiss interface to pc1, you will receive all packets heard on
pc1's <radio-interface>. If you then add to pc1:
ifconfig <kiss-to-pc2-interface> rxecho <radio-interface>
all packets received by pc1 on kiss-interface (ie. coming from pc2) will be
send out on radio-interface. Ie. for pc2 it looks like it is directly
connected to radio-interface, as if pc1 isn't there !
Case 2:
Say you have a gateway pc with radio's, and another pc with ethernet
connected. You can monitor radio channels on the ethernet pc by setting up
an axip link between the gateway and the pc ('attach axip ...' and then
use the scheme above between the radio port and the axip port on the
gateway machine.
Note that you can monitor multi ports, although you will not be able to
know what port a certain packet originated from. You can NOT go transparent
to more then one port, since an interface can only forward received data to
one interface.
Note also that you can monitor frames on fast ports (eg. Ethernet) but NOS
might become more unstable when doing so, because of the large workload.
* Added the 'smtp dtimeout' command, from JNOS
This implements a way of
returning to sender those messages that stay in mqueue longer than a
specified interval. 'smtp dtimeout [hours]' is used to specify how long the
msg stays in the queue, being retried at 'smtp timer' intervals (unless low
on memory, or maxclients is too constraining, etc.) Setting hours to zero
(the default) disables this capability. This is one way of solving the
misaddressed email problem! It does have the drawback that if an alias is
used to copy bulletins to an smtp destination, that becomes unreachable, the
bulletin author may receive his msg back!
* Added code from JNOS for use of multiple MX entries
I also added Selcuk's resolve_amx() to try multiple MX
destinations in the order of preference.
* Added code from JNOS for 'domain maxclients'
I added in Andrew G8FSL's "domain maxclients N" code to domain.c, so as
to limit the maximum number of simultaneous DNS server processes. Default
maximum is 6.
* Added the 'ifconfig <iface> tcp' commands from JNOS
No minor task here ;-) This allows you to have separate TCP parameters
per interface, such as blimit, irtt, maxwait, mss, retries, syndata,
timertype and window. The regular 'tcp' commands set the DEFAULTS that
are given to a new interface.
NOTE:
Make sure to set the 'tcp' defaults BEFORE attaching your
interfaces. These could be done AFTER with prior versions of TNOS, but
should be done BEFORE for 1.14 and up.
* Made 'tcp stat' mods, which shortens display
This mod (made also to the 'tcp connections' command) by default only
displays ACTIVE tcp connections, and NOT the waiting servers. To view the
waiting servers, also, give the commands a parameter of "all". This
mod based on the JNOS mods by Doug Crompton, wa3dsp.
* Added the 'ifconfig <iface> ax25' commands from JNOS
No minor task here, either ;-) This allows you to have separate
AX25 parameters
per interface, such as bctext, blimit, irtt, maxwait, maxwait, paclen,
pthresh, retries, timertype, t3, t4, version
and window. The regular 'ax25' commands set the DEFAULTS that
are given to a new interface.
NOTE:
Make sure to set the 'ax25' defaults BEFORE attaching your
interfaces. These could be done AFTER with prior versions of TNOS, but
should be done BEFORE for 1.14 and up.
Also note, that the JNOS bbscall and cdigi are NOT included, since
there are TNOS equivalents that perform the tasks better.
* Added the ability to remotely trace an interface.
While the idea comes from JNOS 1.10j, this one I re-invented, since the
original design had a very basic problem, it would not allow a remote
user to restore a trace to the state that it was found.
From JNOS docs:
Johan WG7J submitted changes to do all tracing to a socket rather than a
file, so as to permit tracing to (1) the sysop's stdout stream while
connected to the mailbox, (2) a tcp connection to port 1236 if
TRACESERVER was defined and started, or (3) to a local disk file (or
the console trace window) as before. In all cases, the trace <iface>
<args> command must be issued to begin tracing. And, since tracing
produces more characters than in the packets being traced, the trace
socket MUST be faster than the interface being traced, or you will run
out of memory and crash!
To trace an interface to the current socket, use:
trace <iface> <mode> !
The '!' tells it to attach the output to the current session.
* Added a 'mbox scan' command
This allows the sysop to choose whether or not the defaults given to new
users will have them scan for new messages on login. This has no effect
on any users currently in the users.dat file.
* **MAJOR CHANGE** Moved some 'mbox' commands to the 'forward' command
If you DON'T change these, you WILL be asking for help ;-)
The following commands (which were concerning forwarding) WERE located
in the 'mbox' command, and they have been moved to the 'forward' command.
Nothing else about them changed.
Commands moved: bid, bidsuffix, fwdinfo, haddress, kick, mid, qth, rcall,
rsample, rstyle, smtptoo, subchannel, timer, trace, utc and zipcode
* **MAJOR CHANGE** Moved some 'mbox' subcommands to a new 'mbox newuser'
command.
If you DON'T change these, you WILL be asking for help ;-)
The following commands (which concerned default settings given to new users)
are now moved to a separate subcommand, 'mbox newuser'. Nothing else about
them changed.
Commands moved: nrid, and scan
* Added a new attribute to the 'users.dat' file entries for mail holding
There are times when one user or another needs a little hand-holding, and
SHOULD have their mail reviewed before allowing it to be forwarded on. There
is now an attribute 'H' for each user, which if enabled, will cause all mail
generated by them to be held for review of a sysop.
* Added a new permission to the ftpusers files for mail holding
Same reasoning as above. Permission is: hold_mail 16777216 0x01000000
* Added a new 'mbox newuser hold' command
This allows you to choose whether or not to hold all mail generated by
new users for review by a SYSOP.
* Added a new 'mbox newuser area' command
This allows you to choose whether or not to display the area indicator to
new users.
* Added a BBS 'edituser user' command
This command displays the current attributes for the user from the 'users.dat'
file, and allows you to change them. A menu is displayed.
* And removed 'icmp quench', after thought (and arm twisting ;-)
TNOS will no longer (in any version) send a source quench in cases of low
memory. The 'icmp quench' command mentioned earlier as being added to
1.14, has been removed.
* Added a command for starting forwarding to a single BBS
The command 'forward kickone <bbs> [poll]' will start a single forwarding
session. If the 'poll' parameter is given, it will do a polling connect,
even if the forward.bbs file is NOT set for polling.
* Added handling of bid history in memory
A new command, 'bid memory [on|off]' will allow you to access the data from
the 'history' file from memory. You MUST have POOLED memory compiled for this
option to be available. Each entry only takes 22 bytes, so 1024 bids can
be kept in only 22K.
The data from the history file is read into memory, and all searches for
known bids are done in memory. When bids are added, they are added to memory
AND to the file. Bid deletes are done against the memory array.
When you 'bid kick', the 'history' file is recreated from the memory data.
All deleted bids are discarded, as are the bids that have expired.
This is fast, and should have no side effects if the machine is busy doing
other things. Once the 'history' file is rewritten, the memory image is
reloaded.
I recommend setting the 'bid timer' to a fairly low number, to keep the
memory array flushed out.
* Added 'bid count' command, that works with the 'bid memory' command
If you have the 'bid memory' command on, you can use the 'bid count' command
to see how many bids are in memory.
------------------------------------------------------------
Minor Changes:
The following minor changes have occurred.
* Several more Conference Bridge changes for TPP compatibility
* Changed the Linux version to NOT support the screen saver
Since Linux has a screen blanker built-in, I didn't see the need to throw
away the time.
* Modified the delegation server
Made this only send ONE notification per email address per delegation period.
* MANY, MANY, MANY minor changes
Some to prevent possible null pointer dereferences, some to merely
clean-up dirty code.
* The displays for all debug tracing routines cleaned up for Linux
Command such as 'mb trace' now have their display formatted correctly.
* Added a sanity check in rewrite file processing
This prevents infinite recursion with improperly written rewrite conditions.
The hard coded limit is currently set to 10. Any address that requires more
than 10 recursions through the rewrite file will abort the process and log
the error to the logfile.
* Added code and a compiler flag to make BBS ping command secured
If the 'PING_SECURE' flag is enabled, then the BBS ping command will only be
allowed by users that either have ampr or non-ampr telnet permissions.
* Changed the BBS 'S ' command so it is NOT always a personal message
If you send a message as 'S name', then IF the name resolves to a public
area, it will be treated as if it was sent with 'SB'. Otherwise, it will be
treated the old way, and handled as a personal message.
* The BBS 'AN ALL' and 'AS ALL' now show held messages for personal
areas
* Added the FTPserver NOOP and HELP commands - Removed unused NAME
command
* Minor changes in mbxrecline()
These properly bit-bucket NULL characters received. Also there was a
problem with the handling of backspaces within the data of messages. This
problem was caused by trying to allow a greater deal of data transparency
in messages being forwarded via PBBS. The problem was it was not limited
in scope to ONLY a PBBS-entered message. This is fixed.
* Formatting of entries for 'users.dat' file simplified
Removed unneeded spaces and correctly remove any haddress from home BBS
names. Included with 1.14 will be an executable 'cleanup', which can be used
to cleanup your existing 'users.dat' files. While not required, it may be
desired.
* The code for the forward commands moved from forward.c to fwdcmd.c
* The code for bid and wpages expiring moved from expire.c to bid_wp.c
* Minor change to the mbox status display...
For consistency, I changed the Netrom display to make it consistent with
the rest.
AX25 (user on port xxxx)
LOCAL (user @ hostname)
INET (user @ hostname)
NETROM (user @ alias:call)
The netrom display USED to be (alias:call user), and was the ONLY one of
the types that the user was displayed LAST.
* Added to the smtpserver the VRFY command
This does basically the same thing as the EXPN function.
------------------------------------------------------------
Known Bugs:
The following are known bugs that are being worked on during the development
of release 1.14. These may or may not be fixed in release 1.14.
* TCPGATE won't compile in DOS version
Missing some references in the source. Will be fixed soon...
------------------------------------------------------------
To-Do List:
The following are things on my 'to-do' list that may eventually
be done, but not necessarily by the next release.
* Linux kernel AX25 devices available from TNOS/Linux
This would allow the PI card to be used....
* Bypass internet SMTPClient->SMTPServer for local mail
Find a way to do all that is being done, without the overhead of two
separate processes, and two different temp files.
* FBB-style forwarding
No, I didn't give up on this.... Jack/KF5MG is working on this.
* HTTP daemon???
Who knows!
* Add capability to TScript to allow starting of OS commands
This MAY or MAY NOT be limited to Linux version.
* FTP permissions improved
The new UNIX-like dir display needs a little more work with the permissions
portion of the display...
* Add in UNIX permissions checking to FTP server
This could cause problems with restricted files not being restricted.
* Better capability internally or externally to generate statistics
Use the log files to show patterns of traffic, usage, etc.
* Color support output to Linux console
The various color commands don't work with the Linux kernel and curses.
Annoying, but just possible unexpected output. No crashes.
* Add a command to allow a sysop to edit the header of a message
* Add better support for PBBS<->Internet mail address translation
The 'translate' file and improved handling of aliases is a START, but more
work needs to be done here. Maybe a 'translate.out' file...
* Add info to the *.ctl files for forwarding
Place a counter in each message entry that tells how many stations remain
that require forwarding of the message (-1 if none needed it forwarded).
Don't allow deletion of the message
during expiry unless this number is <= zero. Display a 'F' in the 'list'
command if the message has completed forwarding. Add commands to display
stations remaining to forward to, given a message number/area.
* Put in special case code to better handle message number rollover
This is a far less frequent problem in TNOS, with the separate message
sequence and temp sequence numbers, but the problem will STILL occur when
the message sequence number wraps around past 65535 for MIDs (or
99999998 for temp sequence numbers). A special flag to indicate that the
message scan detected a rollover should be added, and special case code
added to alter the last message read and number of messages based on
whether a rollover is in that area.